const { src, dest, watch, series, parallel } = require("gulp");

// 测试gulp指令
function testTask(end){
    console.log("hello gulp");
    end();
}
exports.hello = testTask;

// 读文件，将指定文件转成流对象
// gulp.src()
// 存文件，将指定的经过处理的流对象，再转回文件
// gulp.dest()

// 流对象的方法
// 管道方法，将流对象传输给下一个操作方法
// 流.pipe()
function testSrc(){
    // 从开发环境找文件
    return src(["./src/index.html"])
    // 处理
    // .pipe(...)
    // 转存到生产环境
    .pipe( dest("./www") )
}
exports.src = testSrc;

// 监听指定文件，发生变化，执行指定功能
// gulp.watch()
function testWatch(next){
    watch(["./src/index.html"], testSrc);
    next();
}
exports.w = testWatch;

// 批处理：同时开启多个功能
// gulp.series()
// gulp.parallel()

// 同步
exports.all1 = series(a,b,c);
// 异步
exports.all2 = parallel(a,b,c);

function a(next){
    console.log(1);
    next();
}
function b(next){
    console.log(2);
    next();
}
function c(next){
    console.log(3);
    next();
}

